{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "sgJos9SJNkht"
   },
   "source": [
    "# Llama 3 with code interpreting and analyzing uploaded dataset\n",
    "**Powered by open-source [Code Interpreter SDK](https://github.com/e2b-dev/code-interpreter) by [E2B](https://e2b.dev/docs)**\n",
    "\n",
    "E2B's code interpreter SDK quickly creates a secure cloud sandbox powered by [Firecracker](https://github.com/firecracker-microvm/firecracker).\n",
    "\n",
    "Inside this sandbox is a running Jupyter server that the LLM can use."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "c3XPiIUY1vqt"
   },
   "source": [
    "### Step 1: Install dependencies\n",
    "\n",
    "We start by install the [E2B code interpreter SDK](https://github.com/e2b-dev/code-interpreter) and [Groq's Python SDK](https://console.groq.com/)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "OLxqUGV5_wnv",
    "outputId": "399b55e4-0f58-4d31-9b43-1ef76f054f27"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Requirement already satisfied: groq in /usr/local/lib/python3.10/dist-packages (0.6.0)\n",
      "Requirement already satisfied: e2b_code_interpreter in /usr/local/lib/python3.10/dist-packages (0.0.6)\n",
      "Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/python3.10/dist-packages (from groq) (3.7.1)\n",
      "Requirement already satisfied: distro<2,>=1.7.0 in /usr/lib/python3/dist-packages (from groq) (1.7.0)\n",
      "Requirement already satisfied: httpx<1,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from groq) (0.27.0)\n",
      "Requirement already satisfied: pydantic<3,>=1.9.0 in /usr/local/lib/python3.10/dist-packages (from groq) (2.7.1)\n",
      "Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from groq) (1.3.1)\n",
      "Requirement already satisfied: typing-extensions<5,>=4.7 in /usr/local/lib/python3.10/dist-packages (from groq) (4.11.0)\n",
      "Requirement already satisfied: e2b>=0.17.0 in /usr/local/lib/python3.10/dist-packages (from e2b_code_interpreter) (0.17.0)\n",
      "Requirement already satisfied: websocket-client<2.0.0,>=1.7.0 in /usr/local/lib/python3.10/dist-packages (from e2b_code_interpreter) (1.8.0)\n",
      "Requirement already satisfied: idna>=2.8 in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.5.0->groq) (3.7)\n",
      "Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio<5,>=3.5.0->groq) (1.2.1)\n",
      "Requirement already satisfied: aenum>=3.1.11 in /usr/local/lib/python3.10/dist-packages (from e2b>=0.17.0->e2b_code_interpreter) (3.1.15)\n",
      "Requirement already satisfied: aiohttp>=3.8.4 in /usr/local/lib/python3.10/dist-packages (from e2b>=0.17.0->e2b_code_interpreter) (3.9.5)\n",
      "Requirement already satisfied: jsonrpcclient>=4.0.3 in /usr/local/lib/python3.10/dist-packages (from e2b>=0.17.0->e2b_code_interpreter) (4.0.3)\n",
      "Requirement already satisfied: python-dateutil>=2.8.2 in /usr/local/lib/python3.10/dist-packages (from e2b>=0.17.0->e2b_code_interpreter) (2.8.2)\n",
      "Requirement already satisfied: requests>=2.31.0 in /usr/local/lib/python3.10/dist-packages (from e2b>=0.17.0->e2b_code_interpreter) (2.31.0)\n",
      "Requirement already satisfied: urllib3>=1.25.3 in /usr/local/lib/python3.10/dist-packages (from e2b>=0.17.0->e2b_code_interpreter) (2.0.7)\n",
      "Requirement already satisfied: websockets>=11.0.3 in /usr/local/lib/python3.10/dist-packages (from e2b>=0.17.0->e2b_code_interpreter) (12.0)\n",
      "Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from httpx<1,>=0.23.0->groq) (2024.2.2)\n",
      "Requirement already satisfied: httpcore==1.* in /usr/local/lib/python3.10/dist-packages (from httpx<1,>=0.23.0->groq) (1.0.5)\n",
      "Requirement already satisfied: h11<0.15,>=0.13 in /usr/local/lib/python3.10/dist-packages (from httpcore==1.*->httpx<1,>=0.23.0->groq) (0.14.0)\n",
      "Requirement already satisfied: annotated-types>=0.4.0 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->groq) (0.6.0)\n",
      "Requirement already satisfied: pydantic-core==2.18.2 in /usr/local/lib/python3.10/dist-packages (from pydantic<3,>=1.9.0->groq) (2.18.2)\n",
      "Requirement already satisfied: aiosignal>=1.1.2 in /usr/local/lib/python3.10/dist-packages (from aiohttp>=3.8.4->e2b>=0.17.0->e2b_code_interpreter) (1.3.1)\n",
      "Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp>=3.8.4->e2b>=0.17.0->e2b_code_interpreter) (23.2.0)\n",
      "Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/python3.10/dist-packages (from aiohttp>=3.8.4->e2b>=0.17.0->e2b_code_interpreter) (1.4.1)\n",
      "Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/python3.10/dist-packages (from aiohttp>=3.8.4->e2b>=0.17.0->e2b_code_interpreter) (6.0.5)\n",
      "Requirement already satisfied: yarl<2.0,>=1.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp>=3.8.4->e2b>=0.17.0->e2b_code_interpreter) (1.9.4)\n",
      "Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.10/dist-packages (from aiohttp>=3.8.4->e2b>=0.17.0->e2b_code_interpreter) (4.0.3)\n",
      "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.8.2->e2b>=0.17.0->e2b_code_interpreter) (1.16.0)\n",
      "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests>=2.31.0->e2b>=0.17.0->e2b_code_interpreter) (3.3.2)\n"
     ]
    }
   ],
   "source": "%pip install groq e2b_code_interpreter==1.0.0 python-dotenv==1.0.1"
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "MJDyfcPYyLe7"
   },
   "source": [
    "### Step 2: Define API keys, prompt, and tools\n",
    "\n",
    "Let's define our variables with API keys for Groq and E2B together with the model ID, prompt, and our tools."
   ]
  },
  {
   "cell_type": "code",
   "metadata": {
    "id": "NYAAAS_kFD87",
    "jupyter": {
     "is_executing": true
    }
   },
   "source": [
    "import os\n",
    "from dotenv import load_dotenv\n",
    "load_dotenv()\n",
    "\n",
    "# TODO: Get your Groq AI API key from https://console.groq.com/\n",
    "GROQ_API_KEY = os.getenv(\"GROQ_API_KEY\")\n",
    "\n",
    "# TODO: Get your E2B API key from https://e2b.dev/docs\n",
    "E2B_API_KEY = os.getenv(\"E2B_API_KEY\")\n",
    "\n",
    "# Or use 8b version\n",
    "# MODEL_NAME = \"llama3-8b-8192\"\n",
    "MODEL_NAME = \"llama3-70b-8192\"\n",
    "\n",
    "SYSTEM_PROMPT = \"\"\"You're a python data scientist that is analyzing daily temperature of major cities. You are given tasks to complete and you run python code to solve them.\n",
    "\n",
    "Information about the the temperature dataset:\n",
    "- It's in the `/home/user/city_temperature.csv` file\n",
    "- It has following columns (examples included):\n",
    "  - `Region`: \"North America\", \"Europe\"\n",
    "  - `Country`: \"Iceland\"\n",
    "  - `State`: for example \"Texas\" but can also be null\n",
    "  - `City`: \"Prague\"\n",
    "  - `Month`: \"June\"\n",
    "  - `Day`: 1-31\n",
    "  - `Year`: 2002\n",
    "  - `AvgTemperature`: temperature in celsiu, for example 24\n",
    "\n",
    "Generally you follow these rules:\n",
    "- the python code runs in jupyter notebook.\n",
    "- every time you call `execute_python` tool, the python code is executed in a separate cell. it's okay to multiple calls to `execute_python`.\n",
    "- display visualizations using matplotlib or any other visualization library directly in the notebook. don't worry about saving the visualizations to a file.\n",
    "- you have access to the internet and can make api requests.\n",
    "- you also have access to the filesystem and can read/write files.\n",
    "- you can install any pip package (if it exists) if you need to but the usual packages for data analysis are already preinstalled.\n",
    "- you can run any python code you want, everything is running in a secure sandbox environment\n",
    "\"\"\"\n",
    "\n",
    "\n",
    "tools = [\n",
    "  {\n",
    "    \"type\": \"function\",\n",
    "      \"function\": {\n",
    "        \"name\": \"execute_python\",\n",
    "        \"description\": \"Execute python code in a Jupyter notebook cell and returns any result, stdout, stderr, display_data, and error.\",\n",
    "        \"parameters\": {\n",
    "          \"type\": \"object\",\n",
    "          \"properties\": {\n",
    "            \"code\": {\n",
    "              \"type\": \"string\",\n",
    "              \"description\": \"The python code to execute in a single cell.\",\n",
    "            }\n",
    "          },\n",
    "          \"required\": [\"code\"],\n",
    "        },\n",
    "      },\n",
    "  }\n",
    "]"
   ],
   "outputs": [],
   "execution_count": null
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "10O-rSQcy4Bi"
   },
   "source": [
    "### Step 3: Implement the method for code interpreting\n",
    "\n",
    "Here's the main function that use the E2B code interpreter SDK. We'll be calling this function a little bit further when we're parsing the Llama's response with tool calls."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "id": "BpiwOkTqEeBh"
   },
   "outputs": [],
   "source": [
    "def code_interpret(e2b_code_interpreter, code):\n",
    "  print(\"Running code interpreter...\")\n",
    "  exec = e2b_code_interpreter.run_code(code,\n",
    "  on_stderr=lambda stderr: print(\"[Code Interpreter]\", stderr),\n",
    "  on_stdout=lambda stdout: print(\"[Code Interpreter]\", stdout))\n",
    "\n",
    "  if exec.error:\n",
    "    print(\"[Code Interpreter ERROR]\", exec.error)\n",
    "  else:\n",
    "    return exec.results"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "A1eYw4jKz3RX"
   },
   "source": [
    "### Step 4: Implement the method for calling LLM and parsing tools\n",
    "\n",
    "Now we're going to define and implement `chat_with_llama` method. In this method, we'll call the LLM with our `tools` dictionary, parse the output, and call our `code_interpret` method we defined above."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "id": "IsLjFlRW_TAR"
   },
   "outputs": [],
   "source": [
    "import os\n",
    "import json\n",
    "import re\n",
    "from groq import Groq\n",
    "\n",
    "client = Groq(api_key=GROQ_API_KEY)\n",
    "\n",
    "def chat_with_llama(e2b_code_interpreter, user_message):\n",
    "  print(f\"\\n{'='*50}\\nUser message: {user_message}\\n{'='*50}\")\n",
    "\n",
    "  messages = [\n",
    "      {\"role\": \"system\", \"content\": SYSTEM_PROMPT},\n",
    "      {\"role\": \"user\", \"content\": user_message}\n",
    "  ]\n",
    "\n",
    "  response = client.chat.completions.create(\n",
    "      model=MODEL_NAME,\n",
    "      messages=messages,\n",
    "      tools=tools,\n",
    "      tool_choice=\"auto\",\n",
    "      max_tokens=4096,\n",
    "  )\n",
    "\n",
    "  response_message = response.choices[0].message\n",
    "  tool_calls = response_message.tool_calls\n",
    "\n",
    "  if tool_calls:\n",
    "    for tool_call in tool_calls:\n",
    "      function_name = tool_call.function.name\n",
    "      function_args = json.loads(tool_call.function.arguments)\n",
    "      if function_name == \"execute_python\":\n",
    "        code = function_args[\"code\"]\n",
    "        code_interpreter_results = code_interpret(e2b_code_interpreter, code)\n",
    "        return code_interpreter_results\n",
    "      else:\n",
    "        raise Exception(f\"Unknown tool {function_name}\")\n",
    "  else:\n",
    "    print(f\"(No tool call in model's response) {response_message}\")\n",
    "    return []\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "9ey_AwvPi-DG"
   },
   "source": [
    "### Step 5: Implement method for uploading dataset to code interpreter sandbox\n",
    "The file gets uploaded to the E2B sandbox where our code interpreter is running. We get the file's remote path in the `remote_path` variable."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "id": "f-CsLqcHQk5r"
   },
   "outputs": [],
   "source": [
    "def upload_dataset(code_interpreter):\n",
    "  print(\"Uploading dataset to Code Interpreter sandbox...\")\n",
    "  file_path = \"./city_temperature.csv\"\n",
    "  with open(file_path, \"rb\") as f:\n",
    "    code_interpreter.files.write(file_path, f)\n",
    "  print(\"Uploaded at\", file_path)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "id": "1ybhpXok1tQC"
   },
   "source": [
    "### Step 6: Put everything together\n",
    "In this last step, we put all the pieces together. We instantiate a new code interpreter instance using\n",
    "```python\n",
    "with CodeInterpreter(api_key=E2B_API_KEY) as code_interpreter:\n",
    "```\n",
    "\n",
    "and then call the `chat_with_llama` method with our user message and the `code_interpreter` instance."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 597
    },
    "id": "wKSWobclENIq",
    "outputId": "e6014ac3-e70f-48c2-d73f-cecea1984865"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Uploading dataset to Code Interpreter sandbox...\n",
      "Uploaded at /home/user/city_temperature.csv\n",
      "\n",
      "==================================================\n",
      "User message: Plot average temperature over the years in Algeria\n",
      "==================================================\n",
      "Running code interpreter...\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<e2b_code_interpreter.models.Result at 0x7e179182b280>"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from e2b_code_interpreter import Sandbox\n",
    "\n",
    "\n",
    "with Sandbox(api_key=E2B_API_KEY) as code_interpreter:\n",
    "\n",
    "  # Upload the dataset to the code interpreter sandbox\n",
    "  upload_dataset(code_interpreter)\n",
    "\n",
    "  code_results = chat_with_llama(\n",
    "    code_interpreter,\n",
    "    \"Plot average temperature over the years in Algeria\"\n",
    "  )\n",
    "  if code_results:\n",
    "    first_result = code_results[0]\n",
    "  else:\n",
    "    raise Exception(\"No code results\")\n",
    "\n",
    "\n",
    "# This will render the image\n",
    "# You can also access the data directly\n",
    "# first_result.png\n",
    "# first_result.jpg\n",
    "# first_result.pdf\n",
    "# ...\n",
    "first_result"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "name": "python3"
  },
  "language_info": {
   "name": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
